﻿
$(function () {
   
 
    $("#ubicaciones").on('click', function () {}).buttonset();

    $("#ubicacion1").on("click", function () {
        $("#ubicacion2").removeAttr("checked");
        $("#ubicacion1").attr("checked", "checked");
        listarOficinaXUbicacion("ddlOficina", K_MensajeSelect.Seleccione, "ubicacion");
    });
    $("#ubicacion2").on("click", function () {
        $("#ubicacion1").removeAttr("checked");
        $("#ubicacion2").attr("checked", "checked");
        listarOficinaXUbicacion("ddlOficina", K_MensajeSelect.Seleccione, "ubicacion");
    });

    $("#hidCodigoSistema").on("change", function () {
        var codSistema = $("#hidCodigoSistema").val();
        listarModuloXSistema("ddlModulo", K_MensajeSelect.Seleccione, codSistema);
    });
    $("#txtSistema").on("keypress", function (e) {
        if (e.which == 13) {
            var codSistema = $("#hidCodigoSistema").val();
            listarModuloXSistema("ddlModulo", K_MensajeSelect.Seleccione, codSistema);
            listarPerfilXModulo("ddlPerfil", K_MensajeSelect.Seleccione, 0);
        }
    });
    $("#txtSistema").on("change", function () {
        verPerfil(99, 99);
    });
    $("#ddlModulo").on("change", function () {
        var codModulo = $("#ddlModulo").val();
        listarPerfilXModulo("ddlPerfil", K_MensajeSelect.Seleccione, codModulo);
    });
    $("#ddlPerfil").on("change", function () {
        var codModulo = $("#ddlModulo").val();
        var codPerfil = $("#ddlPerfil").val();
        verPerfil(codModulo, codPerfil);
    });

    $("#btnAgregarUsu").on("click", function () {
        agregarUsuario();
        $("#txtUsuario").val("");
        $("#hidCodigoUsuario").val("");
    }).button();

    $("#ddlOficina").on("change", function () {
        var oficina = $("#ddlOficina").val();
        if (oficina != 0) {
            $("#txtUsuario").prop("disabled", false);
            $("#btnAgregarUsu").prop('disabled', false);
        } else {
            $("#txtUsuario").prop("disabled", true);
            $("#btnAgregarUsu").prop('disabled', true);
        }
        quitarUsuario(0, 0);
        listarUsuario(1);
    });

    initSistemaAutoCompletar("txtSistema", "hidCodigoSistema", "ddlModulo");
    initUsuarioAutoCompletar("txtUsuario", "hidCodigoUsuario");
    $("#btnGrabar").on("click", function () { insertar(); }).button();
    $("#btnCancelar").on("click", function () { location.href = "../Opcion/Asignar"; }).button();
   
    verificarOpcion();
});
var verificarOpcion = function () {
    var codeEdit = (GetQueryStringParams("param"));
    
    if (codeEdit != undefined) {
        edit(codeEdit);
    } else {
        nuevo();
    }
};

var nuevo = function () {
    resetPopup();
    $("#hidOpcion").val(K_Operacion.Insertar);
    verPerfil(99, 99);
    quitarUsuario(0, 0);
};
function quitarUsuario(idUsuario, tipo) {
    $.ajax({
        data: { CodigoUsuario: idUsuario, tipo: tipo },
        url: 'QuitarUsuarioTmp',
        type: 'POST',
        success: function (response) {
            var dato = response;
            validarRedirect(dato);
            if (dato.result == K_ResultadoAjax.Exito) {
                listarUsuario(1);
            } else {
                alertify.error(dato.message);
            }
        }
    });
};

var agregarUsuario = function () {
    if ($("#hidCodigoUsuario").val() != "") {
        var usuario = {
            CodigoUsuario: $("#hidCodigoUsuario").val(),
            NombreUsuario: $("#txtUsuario").val(),
            CodigoOficina: $("#ddlOficina").val()
        };
        $.ajax({
            data: usuario,
            url: 'AgregarUsuarioTmp',
            type: 'POST',
            success: function (response) {
                var dato = response;
                validarRedirect(dato);
                if (dato.result == K_ResultadoAjax.Exito) {
                    listarUsuario(1);
                } else {
                    alertify.error(dato.message);
                }
            }
        });
    } else {
        alertify.error("Debe seleccionar un Usuario.");
    }
};

var listarUsuario = function (tipo) {
    $.ajax({
        data:{tipo:tipo},
        url: 'ListarUsuarioTmp',
        type: 'POST',
        success: function (response) {
            var dato = response;
            validarRedirect(dato);
            if (dato.result == K_ResultadoAjax.Exito) {
                $("#divAgregarUsu").html(dato.message);
                //if ($("#hidTotUsuariosTmp").val() != 0) {
                //    $("#ddlOficina").prop("disabled", true);
                //} else {
                //    $("#ddlOficina").prop("disabled", false);
                //}
            } else {
                alertify.error(dato.message);
            }
        }
    });
};

function cambiarEscritura(elem, idPerfil) {

    //var i = $("#hidNumOpcion_" + idPerfil).val();

    //for (var x = 1; x <= i; x++) {
    //    if (elem.checked) {
    //        $("#rbSinAcceso_" + idPerfil + "_" + x).removeAttr('checked');
    //        $("#rbEscritura_" + idPerfil + "_" + x).prop('checked', true);
    //    } else {
    //        $("#rbEscritura_" + idPerfil + "_" + x).removeAttr('checked');
    //        $("#rbSinAcceso_" + idPerfil + "_" + x).prop('checked', true);
    //    }
    //}

    if (elem.checked) {
        $(".rbOpcion").each(function (idx, valor) {
            var str = valor.id;
            var idRadio = str.substr(0, 11);
            if (idRadio == 'rbEscritura') {
                $(valor).prop('checked', true);
            } else {
                $(valor).removeAttr('checked');
            }
        });
    } else {
        $(".rbOpcion").each(function (idx, valor) {
            var str = valor.id;
            var idRadio = str.substr(0, 11);
            if (idRadio == 'rbSinAcceso') {
                $(valor).prop('checked', true);
            } else {
                $(valor).removeAttr('checked');
            }
        });
    }
}
function cambiarRadioOpciones(elem, idOpcion) {

    var i = $("#hidNumOpcion_" + idOpcion).val();

    for (var x = 1; x <= i; x++) {
        if (elem.value == 'N') {
            $("#rbEscritura_" + idOpcion + "_" + x).removeAttr('checked');
            $("#rbLectura_" + idOpcion + "_" + x).removeAttr('checked');
            $("#rbSinAcceso_" + idOpcion + "_" + x).prop('checked', true);
        } else if (elem.value == 'W') {
            $("#rbLectura_" + idOpcion + "_" + x).removeAttr('checked');
            $("#rbSinAcceso_" + idOpcion + "_" + x).removeAttr('checked');
            $("#rbEscritura_" + idOpcion + "_" + x).prop('checked', true);
        } else if (elem.value == 'R') {
            $("#rbSinAcceso_" + idOpcion + "_" + x).removeAttr('checked');
            $("#rbEscritura_" + idOpcion + "_" + x).removeAttr('checked');
            $("#rbLectura_" + idOpcion + "_" + x).prop('checked', true);
        }
    }
}

function verPerfil(idModulo, idPerfil) {
    //var src = $('#imgExpandPerfil_' + idModulo).attr('src');
    //if (src == '../Imagen/icono/plus.png') {
    //$('#imgExpandPerfil_' + idModulo).attr('src', '../Imagen/icono/minus.png');
    //$('#divContentPerfil_' + idModulo).attr("display", "inline");
    $.ajax({
        url: 'ListarAsignarPerfilHtml',
        data: { idModulo: idModulo, idPerfil: idPerfil },
        type: 'POST',
        beforeSend: function () { },
        success: function (response) {
            var dato = response;
            validarRedirect(dato);
            if (dato.result == K_ResultadoAjax.Exito) {
                $("#divGrillaPerfil").html(dato.message);
            } else if (dato.result == K_ResultadoAjax.Error) {
                alertify.error(dato.message);
            }
        }
    });
    //} else {
    //    $('#imgExpandPerfil_' + idModulo).attr('src', '../Imagen/icono/plus.png');
    //    $('#divContentPerfil' + idModulo).attr("display", "none");
    //    $("#divGrillaPerfil").html("");
    //}
    return false;
}
function verOpciones(idPerfil) {
    var src = $('#imgExpandOpc_' + idPerfil).attr('src');

    if (src == '../Imagen/icono/plus.png') {
        // alert('expandir  verOpciones');
        $('#imgExpandOpc_' + idPerfil).attr('src', '../Imagen/icono/minus.png');
        $('#divContentOpc_' + idPerfil).attr("display", "inline");
        $.ajax({
            url: 'ListarAsignarOpcionHtml',
            data: { idPerfil: idPerfil },
            type: 'POST',
            beforeSend: function () { },
            success: function (response) {
                var dato = response;
                validarRedirect(dato);
                if (dato.result == K_ResultadoAjax.Exito) {
                    $("#divGrillaOpc_" + idPerfil).html(dato.message);
                } else if (dato.result == K_ResultadoAjax.Error) {
                    alertify.error(dato.message);
                }
            }
        });
    } else {
        // alert('contrael  verOpciones');
        $('#imgExpandOpc_' + idPerfil).attr('src', '../Imagen/icono/plus.png');
        $('#divContentOpc_' + idPerfil).attr("display", "none");
        $("#divGrillaOpc_" + idPerfil).html("");
    }
    return false;

}
function verOpcionesRec(idPerfil, idOpc) {
    var src = $('#imgExpandOpc_' + idPerfil + '_' + idOpc).attr('src');
    if (src == '../Imagen/icono/plus.png') {
        $('#imgExpandOpc_' + idPerfil + '_' + idOpc).attr('src', '../Imagen/icono/minus.png');
        $('#divContentOpc_' + idPerfil + '_' + idOpc).css({ "display": "inline" });
        //alert('expandir');
        //$.ajax({
        //    url: 'ListarAsignarOpcionRecHtml',
        //    data: { idPerfil: idPerfil, idOpc: idOpc },
        //    type: 'POST',
        //    beforeSend: function () { },
        //    success: function (response) {
        //        var dato = response;
        //        validarRedirect(dato);
        //        if (dato.result == K_ResultadoAjax.Exito) {
        //            $('#divGrillaOpc_' + idPerfil + '_' + idOpc).html(dato.message);
        //        } else if (dato.result == K_ResultadoAjax.Error) {
        //            alertify.error(dato.message);
        //        }
        //    }
        //});
    } else {
        //alert('contraer');
        $('#imgExpandOpc_' + idPerfil + '_' + idOpc).attr('src', '../Imagen/icono/plus.png');
        $('#divContentOpc_' + idPerfil + '_' + idOpc).css({ "display": "none" });
        $('#divGrillaOpc_' + idPerfil + '_' + idOpc).html("");
    }
    return false;

}

function resetPopup() {
    msgOkB("aviso", "");
    limpiarRequerido();
    listarOficinaXUbicacion("ddlOficina", K_MensajeSelect.Seleccione, "ubicacion");
    listarModuloXSistema("ddlModulo", K_MensajeSelect.Seleccione, $("#hidCodigoSistema").val() == "" ? 0 : $("#hidCodigoSistema").val());
    listarPerfilXModulo("ddlPerfil", K_MensajeSelect.Seleccione, 0);

    $("#txtCodigo").val("");
    $("#txtSistema").val("");
    $("#hidCodigoSistema").val("");
    $("#txtUsuario").val("");
    $("#hidCodigoUsuario").val("");

    $("#ubicacion1").prop('disabled', false);
    $("#ubicacion2").prop('disabled', false);
    $("#ddlOficina").prop('disabled', false);
    $("#txtSistema").prop('disabled', false);
    $("#ddlModulo").prop('disabled', false);
    $("#ddlPerfil").prop('disabled', false);
    $("#txtUsuario").prop('disabled', true);
    $("#btnAgregarUsu").prop('disabled', true);
};

var closePopup = function () {
   // $("#mvNuevo").dialog("close");
};

var insertar = function () {
 
    if (ValidarRequeridos()) {
     
        var codPerfil = $("#hidPerfil").val();
        var idRadioAnterior = "";
        var indice = 0;
        var roles = new Array();
        //"#tb_" + codPerfil + " tbody tr td input[type='radio'] "
        $(".rbOpcion").each(function (idx, valor) {
            if (idRadioAnterior != valor.name) {
                var str = valor.name;
                var Acceso = $("input[name='" + str + "']:checked").val();
                var codOpcion = str.substr(7, str.length - 7);
                //alert(Acceso + " - " + codOpcion);
                roles.push({
                    CodigoOpcion: codOpcion,
                    TipoAcceso: Acceso
                });
                indice++;
            }
            idRadioAnterior = valor.name;
        });

        if (indice != 0) {

            var asignacion = {
                CodigoOficina: $("#ddlOficina").val(),
                CodigoPerfil: $("#ddlPerfil").val(),
                ListaRoles: JSON.stringify(roles),
                CodigoPerfilUsuaro: $("#txtCodigo").val()
            };

            if ($("#hidOpcion").val() == K_Operacion.Insertar) {
                $.ajax({
                    url: 'InsertarAsignacion',
                    data: asignacion,
                    type: 'POST',
                    success: function (response) {
                        var dato = response;
                        validarRedirect(dato);
                        if (dato.result == K_ResultadoAjax.Exito) {
                                 alertify.success(dato.message);
                        } else if (dato.result == K_ResultadoAjax.Error) {
                            alertify.error(dato.message);
                        }
                        //else if (dato.result == K_ResultadoAjax.Error || dato.result == K_ResultadoAjax.Error) {
                        //    if (dato.html != null) {
                        //        alertify.log(dato.html, "", 0);
                        //    }
                        //}

                        if (dato.html != null) {
                            alertify.log(dato.html, "", 0);
                        }
                    }
                });
            } else if ($("#hidOpcion").val() == K_Operacion.Editar) {
                $.ajax({
                    url: 'ActualizarAsignacion',
                    data: asignacion,
                    type: 'POST',
                    success: function (response) {
                        var dato = response;
                        validarRedirect(dato);
                        if (dato.result == K_ResultadoAjax.Exito) {
                            alertify.success(dato.message);
                          //  $("#mvNuevo").dialog("close");
                           
                        } else {
                            alertify.error(dato.message);
                        }
                    }
                });
            }
        } else {
            alertify.error("No se agrego ninguna opción a la configuración.");
        }
    }
};

function edit(id) {
    $("#hidOpcion").val(K_Operacion.Editar);
    //$("#mvNuevo").dialog("open");
    //$("#mvNuevo").dialog('option', 'title', 'Actualizar información de Rol.');
    resetPopup();

    $.ajax({
        data: { CodigoPerfilUsuario: id },
        url: 'ObtenerUsuario',
        type: 'POST',
        success: function (response) {
            var dato = response;
            validarRedirect(dato);
            var rol = dato.data.Data;
            if (dato.result = K_ResultadoAjax.Exito) {
                $("#divGrillaPerfil").html(dato.message);
                listarOficinaXUbicacion("ddlOficina", K_MensajeSelect.Seleccione, "ubicacion", rol.idOficina);
                listarModuloXSistema("ddlModulo", K_MensajeSelect.Seleccione, rol.idSistema, rol.idModulo);
                listarPerfilXModulo("ddlPerfil", K_MensajeSelect.Seleccione, rol.idModulo, rol.idPerfil);
                $("#txtSistema").val(rol.DescripcionSistema);
                $("#hidCodigoSistema").val(rol.idSistema);
                $("#txtCodigo").val(rol.CodigoPerfilUsuario);
                if (rol.idUbicacion == 24) {
                    $("#lblubicacion1").attr("aria-pressed", true);
                    $("#lblubicacion1").attr("class", "ui-button ui-widget ui-state-default ui-button-text-only ui-corner-left ui-state-active");
                    $("#lblubicacion2").attr("aria-pressed", false);
                    $("#lblubicacion2").attr("class", "ui-button ui-widget ui-state-default ui-button-text-only ui-corner-right");
                } else {
                    $("#lblubicacion2").attr("aria-pressed", true);
                    $("#lblubicacion2").attr("class", "ui-button ui-widget ui-state-default ui-button-text-only ui-corner-right ui-state-active");
                    $("#lblubicacion1").attr("aria-pressed", false);
                    $("#lblubicacion1").attr("class", "ui-button ui-widget ui-state-default ui-button-text-only ui-corner-left");
                }
                listarUsuario(0);

                $("#ubicacion1").prop('disabled', true);
                $("#ubicacion2").prop('disabled', true);
                $("#ddlOficina").prop('disabled', true);
                $("#txtSistema").prop('disabled', true);
                $("#ddlModulo").prop('disabled', true);
                $("#ddlPerfil").prop('disabled', true);
                $("#txtUsuario").prop('disabled', true);
                $("#btnAgregarUsu").prop('disabled', true);

            }
        }
    });
}


